package com.ibeeking.found.cop.b.rest.service;

import com.ibeeking.found.cop.service.common.bo.CopSourceBO;
import com.ibeeking.found.cop.service.common.param.CopSourceAddParam;
import com.ibeeking.found.cop.service.common.param.CopSourceModifyBatch;
import com.ibeeking.found.cop.service.common.param.CopSourceParam;
import com.ibeeking.found.cop.service.common.query.CopSourcePageQuery;
import com.ibeeking.found.cop.service.common.query.CopSourceQuery;
import com.ibeeking.found.cop.service.common.vo.CopSourceVO;
import com.ibeeking.found.cop.service.common.vo.CopSourceViewVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;



/**
 * ICopSourceService
 *
 * @Author ibeeking
 * @Date 2021-02-05 16:17
 */
public interface ICopSourceService {

    /***
     * 查询列表
     */
    List<CopSourceVO> list(CopSourceQuery query);

    /***
     * 移动到其它分组
     */
    Page<CopSourceVO> pageList(CopSourcePageQuery pageQuery);

    /***
     * 新增
     * @param param
     */
    Boolean add(CopSourceAddParam param);

    /***
     * 修改
     */
    Boolean modify(CopSourceParam param);

    /***
     * 通过id查询
     */
    CopSourceViewVo view(Long id);

    /***
     * 通过id删除
     */
    Boolean del(Long id);

    /***
     * 批量删除
     */
    Boolean delBatchIds(List<Long> ids);

    /***
     * 移动到其它分组
     */
    Boolean modifyBatchIds(CopSourceModifyBatch copSourceModifyBatch);

    /**
     * 将要删除组的素材移动到未分组
     * @param parentId 素材组id
     */
    void modifyParentId(Long parentId);

    /**
     * 根据 素材id和素材类型获取素材数量
     * @param copSourceBO
     */
    Integer listCountByParentIdAndType(CopSourceBO copSourceBO);
}